// Copyright (c) Appeon. All rights reserved.
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

namespace SnapObjects.Data
{
    /// <summary>
    ///     The operators that are commonly used in SQL.
    /// </summary>
    public enum SqlBinaryOperator
    {
        /// <summary>
        ///     =.
        /// </summary>
        Equals,      
        
        /// <summary>
        ///     !=.
        /// </summary>
        NotEquals,              

        /// <summary>
        ///     <.
        /// </summary>
        LessThan,             

        /// <summary>
        ///     <=.
        /// </summary>
        LessThanOrEquals,  

        /// <summary>
        ///     >.
        /// </summary>
        GreaterThan, 

        /// <summary>
        ///     >=.
        /// </summary>
        GreaterThanOrEquals,

        /// <summary>
        ///     LIKE.
        /// </summary>
        Like, 

        /// <summary>
        ///     NOT LIKE. 
        /// </summary>
        NotLike,

        /// <summary>
        ///     IS.
        /// </summary>
        Is, 

        /// <summary>
        ///     IS NOT.
        /// </summary>
        IsNot,

        /// <summary>
        ///     IN.
        /// </summary>
        In,

        /// <summary>
        ///     NOT IN.
        /// </summary>
        NotIn, 
        /*Exists,                 //exists
        NotExists,              //not exists 
        Between,                //Between
        NotBetween,             //not between*/

        /// <summary>
        ///     = ALL.
        /// </summary>
        EqualsAll, 

        /// <summary>
        ///     != ALL.
        /// </summary>
        NotEqualsAll,

        /// <summary>
        ///     > ALL.
        /// </summary>
        GreaterThanAll,

        /// <summary>
        ///     >= ALL.
        /// </summary>
        GreaterThanOrEqualsAll,

        /// <summary>
        ///     < ALL.
        /// </summary>
        LessThanAll, 

        /// <summary>
        ///     <= ALL.
        /// </summary>
        LessThanOrEqualsAll,

        /// <summary>
        ///     =ANY.
        /// </summary>
        EqualsAny, 

        /// <summary>
        ///     != ANY.
        /// </summary>
        NotEqualsAny,

        /// <summary>
        ///     > ANY.
        /// </summary>
        GreaterThanAny,

        /// <summary>
        ///     >= ANY.
        /// </summary>
        GreaterThanOrEqualsAny,

        /// <summary>
        ///     < ANY.
        /// </summary>
        LessThanAny, 

        /// <summary>
        ///     <= ANY.
        /// </summary>
        LessThanOrEqualsAny, 
    }
}
